import { defineConfigWithVueTs, vueTsConfigs } from '@vue/eslint-config-typescript'
import pluginVue from 'eslint-plugin-vue'
import skipFormatting from '@vue/eslint-config-prettier/skip-formatting'

export default defineConfigWithVueTs(
  {
    name: 'app/files-to-lint',
    files: ['**/*.{ts,mts,tsx,vue}'], // 替代旧版 `extensions`
    ignores: [
      '**/dist/**', // 替代旧版 `ignorePath`
      '**/dist-ssr/**',
      '**/coverage/**',
    ],
    linterOptions: {
      reportUnusedDisableDirectives: true, // 启用未使用的禁用指令检查
    },
    rules: {
      '@typescript-eslint/no-explicit-any': 'off', // 禁止使用 any 类型
      '@typescript-eslint/ban-ts-comment': 'off', // 修正拼写错误
      'vue/multi-word-component-names': 'off',
    },
  },
  pluginVue.configs['flat/essential'], // Vue 基本规则
  vueTsConfigs.recommended, // Vue + TS 推荐规则
  skipFormatting, // 跳过 Prettier 冲突规则
  {
    files: ['**/*.vue'],
    rules: {
      'vue/multi-word-component-names': 'off', // 关闭多词组件名规则
    },
  },
)
